package com.ruoyi.equip.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.SelectEntity;
import com.ruoyi.equip.domain.DeviceInfo;
import com.ruoyi.equip.domain.TagInfo;
import com.ruoyi.equip.domain.entity.DeviceTagEntity;
import com.ruoyi.equip.domain.entity.table.DeviceTableEntity;
import com.ruoyi.equip.domain.entity.table.ExportParam;
import com.ruoyi.equip.domain.vo.DeviceInfoVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author
 * @since 2024-04-16
 */
@Mapper
public interface DeviceInfoMapper extends BaseMapper<DeviceInfo> {

    /**
     * 根据条件分页查询收发机列表
     *
     * @param deviceInfoVO 收发机信息
     * @return 收发机信息集合信息
     */
    public List<DeviceInfoVO> selectDeviceInfos(DeviceInfoVO deviceInfoVO);

    /**
     * 获取指定读写器详情
     * @param deviceId 读写器物理ID
     */
    DeviceInfoVO selectDetail(String deviceId);


    //DeviceInfo selectBySbId(String sbId);

    /**
     * 查询所有读写器下拉框
     * @return 读写器下拉框
     */
    List<SelectEntity> selectOptions(DeviceInfo deviceInfo);

    /**
     * 查询指定读写器设备的产品key
     * @param deviceId 读写器ID
     */
    String selectProductKey(String deviceId);

    /**
     * 查询所有读写器经纬度
     * @return 查询所有读写器经纬度
     */
    List<DeviceInfoVO> selectGis(DeviceInfo deviceInfo);

    /**
     * 查询指定读写器设备的物模型
     * @param deviceId
     * @return
     */
    String selectModel(String deviceId);

    /**
     * 查询导出列表
     * @param exportParam
     * @return
     */
    List<DeviceTableEntity> selectExportData(ExportParam exportParam);

    /**
     * 查询指定产品下的读写器数量
     * @param productKey 产品KEY
     */
    int selectProductChild(String productKey);

    /**
     * 获取缓存列表
     * @return
     */
    List<DeviceTagEntity> getCacheData();

    /**
     * 获取指定读写器设备ID
     * @param deviceId
     * @return
     */
    String selectSbId(String deviceId);

    List<String> selectTagIds(String deviceId);

    List<TagInfo> selectTags(String deviceId);

    int selectCycle(String sbId);
}
